Dynamic viewing of a three dimensional space

ABSTRACT

Some embodiments provide a three dimensional (3D) media-editing application for dynamically presenting different views of a 3D project that includes one or more objects disbursed throughout a 3D space. A dynamic display provides the dynamic views upon the occurrence of specified triggering events. In some embodiments, the dynamic display appears within the 3D media-editing application throughout the duration of the triggering event and is removed upon completion of the triggering event. The dynamic display of some embodiments shows edits to the 3D project from a predicted angle or viewing perspective that best conveys the objects of the 3D project in conjunction with the actions of the triggering event without duplicating views presented in one or more static workspace windows of the 3D media-editing application.

FIELD OF THE INVENTION

The present invention is directed towards media editing. Specifically,to dynamically displaying different views of a three dimensional spacewhen performing media editing.

BACKGROUND OF THE INVENTION

Digital graphic design, video editing, and media-editing applicationsprovide designers and artists with the necessary tools to create much ofthe media seen today through the various media outlets. These toolsallow designers the ability to generate, compose, composite, and animatethe images and videos in a virtual digital space. In the progression ofthese tools, the virtual digital space has gone from flat twodimensional (2D) spaces to three dimensional (3D) spaces.

The 3D space provides designers capabilities not previously availablewithin the 2D space. Designers now have the ability to fly virtualcameras throughout the 3D space adding depth to render more lifelikeenvironments. Also, the added third dimension provides designers with amuch larger workspace with which to work. Objects such as images,videos, text, shapes, cameras, lights, spatial audio, etc. can belocated anywhere in any dimension of the 3D space.

However, the evolution to 3D space has complicated the manner in whichthe objects within the workspace are displayed. Since the workspace isno longer a flat 2D plane, application developers have had to derive newways to display all the objects within the 3D space. A single staticview that provides a particular viewing perspective or angle of the 3Dspace simply does not provide designers with the necessary informationneeded to efficiently modify the objects within the 3D environments.Moving objects and placing objects relative to each other along each ofthe three dimensions of the 3D space cannot be performed accurately fromthe single view. FIG. 1 illustrates a single view for an activeworkspace window 110 of a 3D space within a 3D editing application thatincludes various editable objects, such as image objects 120 and cameraobjects 130. By clicking and dragging the various objects, users areable to manipulate the objects within the 3D space. However, because ofthe single view, users are unable to accurately determine the effect ofthe object manipulation across all three dimensions and thus at leastone height, width, or depth dimension is compromised. For example, inthe 3D space of FIG. 1, a user is unable to determine how the movementof an image object 120 relative to a camera object 130 affects what isrendered from the camera object 130.

To attempt to alleviate the problem, application developers providedusers with the ability to switch the perspective from which to view the3D space such that the 3D space is rendered from a more preferred view.One such example is to switch the view to render the 3D space from theview of the camera object 130. However, to do so is time consuming andone view is shown at the expense of not displaying another view.Therefore, when the user makes a change to objects in the 3D space froma first view, the user must revert back to the other views of the 3Dspace to see how the change in the first view affects what is displayedin the other views.

As a compromise, application developers reduced the size of a singlestatic workspace by introducing multiple simultaneous static workspaces,each workspace providing a different view of the 3D space. Now, when auser manipulates an object within a particular view, the manipulationwill be seen from the multiple different views of the other workspaces.However, with every new workspace added, the size of the otherworkspaces is further reduced. FIG. 2 illustrates a typical 3D editingapplication that provides an active workspace with a particular view 210and three additional workspaces 220-240 that each provide differentviews of the 3D space while occupying equal screen space as the activeworkspace 210.

In this figure, the 3D space is shown with a perspective view 210, aright side view 220, a top side view 230, and an active camera view 240.However, because of the size of each workspace window, the amount ofinformation that is displayed within each workspace is reduced from whatwas displayed when using only a single workspace with a single view asabove in FIG. 1. Users are able to modify the size and number of thedifferent workspace windows and views displayed onscreen at any giventime. However, with each adjustment, the user has to make a tradeoffbetween the size of the active workspace and the size of each of theother workspaces. This imposes a burden onto the user who now has tomanually manage the information displayed on screen.

Users have to anticipate which views are relevant to the manipulationsthat are to be subsequently performed on the objects within the 3Dspace. If a particular view is not set, the user has to manually switchone of the multiple views to provide the desired view. Such environmentmanagement takes away from time that could otherwise be dedicatedworking with the objects of the 3D space to create the desired design.

A further problem resulting from the multiple simultaneous workspaceswith different views is the computing resources needed to render each ofthe views. Instead of having to render a scene from a single view, morecomputing resources are required to render the same scene from multipledifferent views often taxing the computer system. This caused designersto lose design time as they now had to wait for each of the views torender a single object manipulation multiple times from multipledifferent views.

Therefore, the multiple simultaneous views commonly employed by 3Dediting applications reduces the size of the active workspace, places aburden on the user to manage the different views, and consumesunnecessary computing resources in order to render each of the differentviews. However, without the multiple simultaneous views, designers areunable to properly work within the digital 3D space. There is thus aneed to simplify how and when the different views should be provided tothe user such that relevant information needed by the user tomanipulate, edit, composite, etc. the objects within the 3D space isprovided when needed and avoided when not needed.

SUMMARY OF THE INVENTION

Some embodiments provide a three dimensional (3D) media-editingapplication for dynamically presenting different views of a 3D projectthat includes one or more objects disbursed throughout a 3D space. Adynamic display provides the dynamic views upon the occurrence ofspecified triggering events. In some embodiments, the dynamic displayappears within the 3D media-editing application throughout the durationof the triggering event and is removed upon completion of the triggeringevent. The dynamic display of some embodiments shows edits to the 3Dproject from a predicted angle or viewing perspective that best conveysthe objects of the 3D project in conjunction with the actions of thetriggering event without duplicating views presented in one or morestatic workspace windows of the 3D media-editing application.

In some embodiments, the triggering events include manipulating contentof the 3D project. In some embodiments, manipulating content includesmanipulating camera objects and non-camera objects within the 3Dproject. Prior to presenting the dynamic display, some embodimentspredict the view for the dynamic display based on the one or moretriggering events. In some embodiments, the dynamic display presents thesame view of the 3D project for different triggering events. In otherembodiments, the dynamic display presents different views of the 3Dproject for different triggering events. Accordingly, for a manipulationof a first camera object, some embodiments of the dynamic display renderthe 3D project from a view of the first camera object and for asubsequent manipulation of a second camera object, some embodimentsrender the 3D project from a view of the second camera object.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of theinvention are set forth in the following figures.

FIG. 1 illustrates a single view for a active workspace of a 3D spacewindow within a 3D editing application that includes various editableobjects such as image objects and camera objects.

FIG. 2 illustrates a typical 3D editing application that provides anactive workspace with a particular view and three different views thatoccupy equal screen space as the active workspace.

FIG. 3 presents a process for providing the dynamic display upon theoccurrence of a triggering event.

FIG. 4 illustrates a media-editing application with a dynamic displayhaving a view from camera object during the modification of the cameraobject within an active workspace of the media-editing application.

FIG. 5 illustrates a media-editing application with a dynamic displayhaving a different view than the dynamic display of FIG. 4 because of adifferent triggering event.

FIG. 6 illustrates the media-editing application once the triggeringevent of either FIG. 4 or FIG. 5 is complete and the dynamic display isremoved from the active workspace.

FIG. 7 shows a media-editing application in accordance with someembodiments of the invention.

FIG. 8 illustrates the media-editing application of FIG. 7 with thecollapsible function menu expanded to show the various functions andparameters for manipulating an object within the 3D space.

FIG. 9 presents a process for determining the view of the dynamicdisplay prior to displaying the dynamic display within the activeworkspace.

FIG. 10 illustrates the selection of the view of the dynamic display tobe the view of a camera object currently being manipulated.

FIG. 11 illustrates dynamically changing the view of the dynamic displaybased on the selection of a different camera object.

FIG. 12 illustrates providing the active camera view for the dynamicdisplay when the active workspace renders from the perspective view. Inthis figure, the user has selected the image object for manipulation.

FIG. 13 illustrates providing the perspective view for the dynamicdisplay when the active workspace renders from the active camera view.

FIG. 14 presents a process for determining the view for the dynamicdisplay based on the user actions.

FIG. 15 illustrates a parameter for activating and deactivating thedynamic display functionality.

FIG. 16 illustrates various parameters related to the appearance of thedynamic display within the media-editing application.

FIG. 17 illustrate some of the various options associated with theparameter.

FIG. 18 illustrates a computer system with which some embodiments of theinvention are implemented.

DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description of the invention, numerousdetails, examples, and embodiments of the invention are set forth anddescribed. However, it will be clear and apparent to one skilled in theart that the invention is not limited to the embodiments set forth andthat the invention may be practiced without some of the specific detailsand examples discussed.

I. Overview

Some embodiments provide a three dimensional (3D) media-editingapplication for dynamically presenting different views of a 3D projectthat includes one or more objects disbursed throughout a 3D space. Adynamic display provides the dynamic views upon the occurrence ofspecified triggering events. In some embodiments, the dynamic displayappears within the 3D media-editing application throughout the durationof the triggering event and is removed upon completion of the triggeringevent. The dynamic display of some embodiments shows edits to the 3Dproject from a predicted angle or viewing perspective that best conveysthe objects of the 3D project in conjunction with the actions of thetriggering event without duplicating views presented in one or morestatic workspace windows of the 3D media-editing application.

FIG. 3 presents a process 300 for providing the dynamic display upon theoccurrence of a triggering event. The process 300 begins by identifying(at 310) a triggering event that instantiates the dynamic display. Theprocess then performs (at 320) a check of the dynamic display preferencesettings. The preferences specify parameters such as the size of thedynamic display, the location within the active workspace to present thedynamic display, the render quality of the dynamic display, etc. Thepreferences also specify (at 330) whether the dynamic displayfunctionality is enabled. If the dynamic display functionality isdisabled, the process ends. Otherwise, the process determines a view forthe dynamic display by identifying (at 340) at least one view currentlyused by one or more active workspace windows of the media-editingapplication. The process then determines (at 350) the view for thedynamic display based on the triggering event, the dynamic displaypreference settings, and the currently displayed views of the activeworkspace such that the same view is not replicated within the dynamicdisplay.

After determining the view for the dynamic display, the dynamic displayis presented (at 360) within the media-editing application throughoutthe duration of the triggering event. Once the triggering event iscomplete, the process removes (at 370) the dynamic display and theprocess ends.

FIGS. 4-6 illustrate a media-editing application 405 that presents thedynamic display with different views as determined by various triggeringevents in accordance with some embodiments of the invention.Specifically, FIG. 4 illustrates the media-editing application 405 witha dynamic display 410 rendering the 3D project from a view of the cameraobject 420 during the modification of the camera object 420 within theactive workspace 450 of the media-editing application 405.

In this figure, the active workspace 450 presents a front view of the 3Dproject. The 3D project specifies an environment that includes multipledifferent media objects placed within a 3D space. The environmentincludes editable image objects 460 and 470 and three camera objects420, 430, and 440 disbursed throughout the 3D space. The workspace 450is a static display window of the media-editing application 405. Theactive workspace 450 is static in the sense that a scene of the 3Dproject is continually rendered within the active workspace 450irrespective of any user action to the 3D project or any user actionwithin the media-editing application.

By selecting the view of the camera object 420 for the dynamic display410, the dynamic display 410 is able to render how manipulations to thecamera object 420 in the active workspace 450 affect what the cameraobject 430 renders. Moreover, the dynamic display is rendered inreal-time such that the manipulations that occur in the active workspace450 are simultaneously presented in the dynamic display 410 albeit froma different view than the active workspace 450. Accordingly, the activeworkspace 450 renders a scene of the 3D project from a particular viewand the dynamic display 410 renders a different scene of the 3D projectby rendering the scene from a different view.

In some embodiments, rendering of the active workspace 450 is givenpriority over rendering of the dynamic display 410 such that the dynamicdisplay 410 is rendered after the active workspace 450 is updated todisplay any changes occurring therein. In some such embodiments, thereal-time rendering becomes dependent on the processing resources of thecomputer system executing the media-editing application. To conserveprocessing resources for an underpowered system, some embodimentsprovide a customizable parameter for the rendering of the dynamicdisplay 410. The parameter specifies particular intervals (e.g., everysecond) to update the dynamic display 410 instead of a continuousrendering of the dynamic display during the object manipulation in theactive workspace 450.

FIG. 5 illustrates the media-editing application 405 with a dynamicdisplay 510 having a different view than the dynamic display 410 of FIG.4 because of a different triggering event. The triggering event of FIG.5 is caused by the manipulation of object 460 that is not a cameraobject (e.g., image object). The dynamic display 510 presents aperspective view of the 3D project such that the affect of themanipulations to the object 460 are shown from the perspective view inaddition to the front view of the active workspace 450.

Each of the dynamic displays 410 and 510 appear throughout the durationof the associated triggering event. Upon completion of the triggeringevent, the dynamic display 410 or 510 is removed from the media-editingapplication 405. FIG. 6 illustrates the media-editing application 405once the triggering event of either FIG. 4 or FIG. 5 is complete and thedynamic display 410 or 510 is removed from the active workspace 450.

Though the dynamic displays 410 and 510 are shown rendering only asingle view, some embodiments inset two or more different dynamicdisplays within the media-editing application during a triggering event.Each such dynamic display has a unique view that is different from theviews of the other dynamic displays and the workspace windows of themedia-editing application. Additionally, some embodiments permit usersthe ability to specify multiple workspace windows within themedia-editing application, each with different views. Accordingly, whenproviding the one or more dynamic displays, some embodiments select theviews for the one or more dynamic displays such that each selected viewis different from the views of all other dynamic displays and all otherworkspace windows.

Several more detailed embodiments of the invention are described in thesections below. Before describing these embodiments further, Section IIprovides several more detailed embodiments for the media-editingapplication of some embodiments. Next, Section III describes the viewselection process performed by some embodiments for dynamicallyselecting the view of the dynamic display based on the triggering event.Section IV describes some of the various parameters for customizing thefunctionality of the dynamic display in accordance with someembodiments. Lastly, Section V describes a computer system whichimplements some of the embodiments of the invention.

II. Media-Editing Application

FIG. 7 shows a media-editing application 700 in accordance with someembodiments of the invention. The media-editing application 700 provides(1) a main workspace window 710 to display objects of a 3D projectwithin a 3D space, (2) a set of selectable tabs 720 reveal variousfunctions 730 for manipulating the objects of the 3D project, (3) a setof various menu controls 740 for providing file management and objectmanagement functionality, and (4) a set of selectable icons 750 foradding objects to the 3D project and removing objects from the 3Dproject.

As noted above, the workspace window 710 is a static window thatcontinually displays the 3D project from a selected view irrespective ofuser action within the media-editing application. Users manually selectthe view of the workspace 710 using the selectable item 715. Clickingthe selectable item 715 presents a drop down list of available views forthe workspace 710. The selectable items 725 are parameters that affecthow the view of the workspace 710 is rendered and how the composition orlayout of objects within the project are rendered. For example, some ofthe selectable items 725 permit an adjustment to the level with whichthe view zooms into the 3D space and whether the rendered result withinthe workspace 710 is in color or grayscale. It should be apparent to oneof ordinary skill in the art that some embodiments of the media-editingapplication allow for the simultaneous displaying of multiple staticworkspace windows, each workspace window rendering the 3D project from adifferent view.

Additionally, each of the graphical representations for the objectsappearing within the workspace 710 is fully editable. Users can drag anddrop a graphical representation to manipulate a position of an objectwithin the 3D space. Users can manipulate an object by clicking itscorresponding graphical representation in order to modify attributes ofthe objects. Users can modify one or more attributes of an object usingthe functions 730 or icons 750 of the media-editing application 700. Insome embodiments, objects within the 3D space include image objects,camera objects, text objects, video objects, mask objects, sound objects(that create spatial reconstruction of sound within the 3D space),drawing objects (e.g., brush strokes), light objects, effect objects(e.g., smoke effects, blur effects, filter effects), etc.

The set of selectable tabs 720 provide a means to access data related toobject properties, behaviors, filters, and cameras. Some of the variousobject manipulating functionality is incorporated within sets ofcollapsible function menus 730. Each of the collapsible function menus730 contain groups of related functions and parameters for manipulatingone or more objects within the 3D space of the workspace 710. Eachfunction is expandable and collapsible through the selectable userinterface items 760.

FIG. 8 illustrates the media-editing application 700 of FIG. 7 with thecollapsible function menu 810 expanded to show the various functions andparameters for manipulating an object within the 3D space. The functionmenu 810 includes three object blending functions such as manipulatingthe opacity of an object, the type of blending to perform, and whetherto preserve or discard the opacity manipulation.

Adjacent to each of the functions are parameters that determine theamount or degree of the change to the object produced by the function. Auser may increase or decrease the impact of a given function by alteringthe specified parameter. As illustrated, some functions include a userinterface slider item to adjust the corresponding parameter. The userinterface slider item represents a range of values where differentpoints along the sliding scale represent different values, each valueadjusting the impact of the function. Adjacent to the user interfaceslider item is a user interface text item for direct entry of anumerical value. The user interface text item accepts values within therange of values represented by the user interface slider item. Valuesgreater than or less than the acceptable range of values will either beautomatically scaled to the next closest acceptable value or will createa prompt to notify the user of the invalid entry. The user interfaceitem is also adjustable using the increasing and decreasing arrowssurrounding the numerical value.

In some embodiments, the result of an object manipulation function isrendered in real-time within the active workspace window 710 and also ina dynamic display having a view different than the active workspacewindow 710 if the manipulation is identified as a triggering event forinstantiating the dynamic display. Thus, sliding the opacity blendingfunction slider across the range of acceptable values causes the displaywindow to update the opacity of one or more objects in the 3D while alsoproviding a secondary view of the changes through the dynamic display.When the changes to the object opacity is complete, the dynamic displayis removed from the media-editing application 700.

Referring back to FIG. 7, the selectable icons 750 permit users theability to add, remove, or modify objects in the 3D space. As shown,these objects may include light objects (e.g., spot lighting, diffusedlighting, ambient lighting, global lighting, etc.) and camera objectswith icons that modify the behavior of the objects and filters thatmodify how the camera object render the 3D space. Other objects such asimage objects, video objects, etc. can be imported into the 3D spaceusing the “file browser” icon within the selectable icons 750. Users canimport these various objects into the media-editing application from acomputer readable medium that may include a storage device of thecomputer system executing the media-editing application or other storagedevices of other computing devices. Users can also load previouslyimported objects using the selectable “library” icon within theselectable icons 750. This icon accesses an object library of themedia-editing application that in some embodiments is shared by multipleapplications of the computer system.

In some embodiments, the composition of objects within the 3D space andthe various behaviors and manipulations of the objects that togetherdefine the 3D project are retained within a cache or memory buffer ofthe computer system. The project is also permanently stored as a file ona computer readable medium of the computer system executing themedia-editing application or some networked computer readable mediumwhich the computer system executing the media-editing applicationremotely accesses.

III. Dynamic View Selection

In some embodiments, the dynamic display is dynamic in the sense that itonly appears within the media-editing application when a triggeringevent occurs. The dynamic display is also dynamic in the sense that theselected view of the dynamic display is dynamic based on the triggeringevent and/or the view of the media-editing application workspaces. Inthis manner, the dynamic display provides an intelligent display thatautomatically tailors the view to the user's actions and thus the user'sneeds. Different triggering events cause the dynamic display to renderwith different views. Some embodiments utilize different heuristics todetermine the suitable view of the dynamic display such that the dynamicdisplay renders meaningful views in accordance with user actions withinthe workspace windows.

FIG. 9 presents a process 900 for determining the view of the dynamicdisplay prior to displaying the dynamic display within the media-editingapplication. The process 900 begins by determining (at 910) whether adetected triggering event involves the manipulation of a camera objectof a 3D project. If the object being manipulated is a camera object, theprocess then determines (at 920) whether a current view of one or moreworkspaces of the media-editing application is the view of cameraobject. If so, the dynamic display is not displayed and the processends. Otherwise, the process selects (at 930) the view of the dynamicdisplay to be that of the manipulated camera object. In this manner, auser manipulating the camera object will be able to see in real-time howthe manipulations to the camera object affect what the camera objectrenders. The user thus does not need to dedicate an entire workspacewindow to that camera object. Instead, the view for that camera objectis automatically provided by some embodiments when the user manipulatesthe object and when the user actually needs the information provided bysuch a view.

Users may also specify multiple camera objects within a single 3D space.To define a workspace window to render the views provided by all suchcamera objects would be a waste of system resources and screen space.Therefore, by providing the dynamic display when a particular cameraobject is being manipulated, all relevant information is automaticallyprovided to the user when needed without unnecessarily utilizing systemresources or screen space. FIGS. 10 and 11 below illustrate a 3D spacethat includes multiple camera objects and the automatic view selectionfor the dynamic display based on a manipulation of each such cameraobject.

If the object being manipulated is not a camera object, the processdetermines (at 940) whether the view of the active workspace is anactive camera view. If the active workspace is currently rendering theactive camera view, then the process selects (at 950) the perspectiveview for rendering within the dynamic display. Otherwise, the processselects (at 960) the active camera view to be the view from which thedynamic display renders the project.

FIG. 10 illustrates the selection of the view of the dynamic display tobe the view of a camera object currently being manipulated. In thisfigure, the active workspace 1010 includes two image objects 1020 andthree camera objects 1030, 1040, and 1050. A user selects camera object1050 for modification. As shown, the camera object 1050 is highlightedand a set of data is displayed adjacent to the camera object 1050. Basedon the modification of the camera object 1050, some embodiments presentthe dynamic display 1060 with the view of the camera object 1050 beingmanipulated.

FIG. 11 illustrates dynamically changing the view of the dynamic displaybased on the selection of a different camera object 1040. In thisfigure, the user has selected camera object 1040 for manipulation.Accordingly, the dynamic display 1110 changes to present the view of themanipulated camera object 1040.

FIG. 12 illustrates providing the active camera view for the dynamicdisplay 1310 when the active workspace 1320 renders from the perspectiveview. In this figure, the user has selected the image object 1230 formanipulation. Since the selected object is not a camera object, someembodiments identify the view of the active workspace 1220 and select aview for the dynamic display 1210 that does not overlap with the view ofthe active workspace 1220. Therefore, the dynamic display 1210 rendersfrom the active camera view. It should be apparent to one of ordinaryskill in the art that the active camera is not a static view, but ratherone that can switch between various cameras within the 3D space. This isoften the case when using the media-editing application to compositevideo clips where the video clip changes from a first camera to a secondcamera at a particular time interval of the video clip.

FIG. 13 illustrates providing the perspective view for the dynamicdisplay 1210 when the active workspace 1220 renders from the activecamera view. Similar to FIG. 12, the user has selected the image object1330 for manipulation. However, because the view for the activeworkspace 1320 is the active camera view, some embodiments intelligentlyavoid duplicating the same view within the dynamic display 1310 byinstead selecting the perspective view as the view for the dynamicdisplay 1310.

In some embodiments, the process 900 of FIG. 9 is a default processperformed to determine the view of the dynamic display. Some embodimentspermit users the ability to specify their own set of rules for selectingan appropriate and meaningful view for the dynamic display based ontheir actions. For instance, some users may specify that when aparticular object is being manipulated within the 3D space, select theview of a camera object that is closest to the object being manipulatedas the view for the dynamic display. Alternatively, some users mayspecify rules such that the view of the dynamic display is selected tobe the view of a camera object within the 3D space that renders thelargest portion of the image being manipulated. Accordingly, someembodiments provide full customized control over the view selection forthe dynamic display by allowing a user to associate a particular viewfor the dynamic display based on a particular action or objectmanipulation within an active workspace. Additional customizationparameters for the dynamic display are provided below in Section IV.

Some embodiments select the view for the dynamic display based on useractions or object manipulations within the active workspace. FIG. 14presents a process 1400 for determining the view for the dynamic displaybased on the user actions or object manipulations. The process 1400begins by receiving (1410) a triggering event within the activeworkspace window of a media-editing application. The process identifies(at 1420) the current view of the active workspace to ensure that aselected view for the dynamic display does not provide the same view.Next, the process identifies (at 1430) the object being manipulatedwithin the active workspace and the type of manipulation. For instance,a first manipulation may involve moving the object along the depthz-axis of the 3D space and a second manipulation may involve moving theobject vertically along the y-axis of the 3D space.

The process determines (at 1440) whether the selected object is a cameraobject and if so renders (at 1450) the view of the dynamic display fromthe view of the camera object being manipulated. Otherwise, the processdetermines the view for the dynamic display based on the objectmanipulation and the view of the active workspace. This manner ofintelligent view selection permits some embodiments to tailor the viewof the dynamic display such that it adjusts according to themanipulation of the object performed by the user in the activeworkspace. Different manipulations cause the dynamic display tocontinually change as the manipulation occurs. Therefore, if a firstidentified manipulation involves moving the object along the depthz-axis of the 3D space, then the dynamic display will have a first viewto best illustrate this first manipulation and if a second identifiedmanipulation involves moving the object along the y-axis of the 3D spacethen the dynamic display will have a second view to best illustrate thissecond manipulation.

The views can be defined such that a predetermined optimal view isassociated with each particular manipulation. For instance, someembodiments select a front view when an object is moved vertically withrespect to another object in the 3D space. For such a manipulationoperation, it is beneficial for the user to see how much one objectobscures or reveals portions of the other object from the front view.However, for such a manipulation operation, there would be no benefitfor the dynamic display to render from a top view.

Some embodiments define the view to also account for the orientation ofthe object within the 3D space. For instance, if an image object isaligned parallel to a vertical y-axis of an x-y-z 3D space, it isbeneficial to provide a side view for the dynamic display such that themanipulations to the image object can be best displayed. If the imageobject is instead aligned parallel to a horizontal axis of the 3D space,it is beneficial to provide a top or bottom view for the dynamic displaysuch that the manipulations to the image object can be best displayed.

Additionally, some embodiments also determine the field of view for thedynamic display when determining the particular view to render withinthe dynamic display. The field of view should be selected to providesufficient information to the user without providing too muchinformation where the information becomes indecipherable. When the fieldof view is too small, the affect of an object manipulation cannot beseen with respect to other surrounding objects. When the field of viewis too large, too many objects are presented within the smaller dynamicdisplay and since each object may only comprise a few pixels, themanipulations will not be clearly presented within the dynamic display.Therefore, the process 1400 of some embodiments accounts for useractions and other considerations (e.g., field of view) when determiningthe view of the dynamic display.

After determining the view for the dynamic display, the process 1400presents the dynamic display within the media-editing application. Thedynamic display then renders the 3D space according to the determinedview of step 1460. It should be apparent that some embodiments allow themanual customization for the selection of the view of the dynamicdisplay to work in conjunction with either processes 900 of FIG. 9 or1400 of FIG. 14.

IV. Dynamic Display Parameters

FIGS. 15-17 illustrate some of the various parameters for customizingsettings of the dynamic display in accordance with some embodiments.FIG. 15 illustrates a parameter for activating and deactivating thedynamic display functionality. Specifically, some embodiments of amedia-editing application provide selectable drop down menus withselectable user interface items for setting various parameters of thedynamic display and other functionality associated with themedia-editing application. By selecting item 1510 within the selectabledrop down menu 1520, users are able to activate and deactivate thedynamic display functionality.

A check next to the user interface item 1510 indicates that the dynamicdisplay functionality is active. Accordingly, any triggering events thatoccur within the active workspace will instantiate the dynamic displaycausing it to render a different view from that of the active workspacethroughout the duration of the triggering event. When the user interfaceitem 1510 is not checked, then the dynamic display will not display uponthe occurrence of a triggering event.

FIG. 16 illustrates various parameters related to the appearance of thedynamic display within the media-editing application. The settingsappear within a separate dialog window 1610 of the media-editingapplication. The settings are specified through selectable userinterface items for selecting the triggering event sensitivity 1620 ofthe dynamic display and the size 1630 of the dynamic display.

Users select what actions within the active workspace act as triggeringevents for displaying the dynamic display by modifying parameter 1620.FIG. 17 illustrate some of the various options associated with theparameter 1620. As shown in FIG. 17, triggering events can be selectedto include transform changes 1710 occurring within the active workspaceor all changes occurring within the active workspace 1720.Alternatively, users may elect to manually control 1730 the dynamicdisplay. It should be apparent to one of ordinary skill in the art thatsome embodiments provide a larger enumerated set of options forspecifying the triggering events that instantiate the dynamic display.For instance, some embodiments provide a set of possible triggeringevents and check boxes associated with each event such that the user canselect and deselect different combinations of events for specifying theinstantiation of the dynamic display. Accordingly, users may select thedynamic display to appear upon an object rotation or movement, but notwhen the size of the object is changed.

The dynamic display size parameter 1630 of FIG. 16 allows users tocustomize the amount of information that is displayed within the dynamicdisplay. By specifying a large dynamic display, more detail may beincluded within the dynamic display as the rendered objects within thedynamic display appear larger. Some embodiments provide a locationparameter to specify the location of the dynamic display within aworkspace window of the media-editing application. As shown in FIG.10-13, the dynamic display window appears in the lower right corner.However, using the location parameter, users may customize where thedynamic display appears within the workspace.

Some embodiments further permit a user to specify a rendering rateparameter (not shown in FIGS. 17 and 16) to control the rate at whichthe dynamic display is updated. By default, the dynamic display of someembodiments provides a continuous rendering of the 3D project from aselected view. However, to conserve processing resources, users canspecify that the dynamic display be updated only at particular intervals(e.g., every second) using the rendering rate parameter.

Similarly, some embodiments provide a parameter that controls thequality at which the dynamic display renders the project from theselected view. For instance, a user may require the highest possibleresolution for the active workspace in order to view intricate detailswithin the project, but the user may not need such detail in the dynamicdisplay when the dynamic display is only used to provide quick previewof the project from a secondary view. In such cases, the user prefers toreduce the resolution with which the dynamic display renders the projectso that the processing resources required by the dynamic display areminimized.

To specify custom views to associate with particular triggering events,some embodiments provide a view customization interface. The viewcustomization interface contains various triggering events. The user mayselect a particular triggering event using a drop down box. The user maythen associate a particular view to render within the dynamic displayupon the occurrence of the triggering event. In some embodiments, thisalso occurs using a drop down list of selectable views.

In some embodiments, the dynamic display functionality may beincorporated into any media-editing application by way of a plug-in,applet, or direct function incorporated within the application itself.Accordingly, different media-editing applications, such as AppleMotion®, Autodesk Maya®, and Autodesk 3D Studio Max® may eachincorporate the dynamic display function described herein. Additionally,the dynamic display functionality of some embodiments can beincorporated within the functionality of an operating system such asMicrosoft Windows® or Apple Mac OS® when providing various media-editingoperations.

V. Computer System

FIG. 18 illustrates a computer system with which some embodiments of theinvention are implemented. Computer system 1800 includes a bus 1805, aprocessor 1810, a graphics processing unit (GPU) 1820, a system memory1825, a read-only memory 1830, a permanent storage device 1835, inputdevices 1840, and output devices 1845.

The bus 1805 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices of thecomputer system 1800. For instance, the bus 1805 communicativelyconnects the processor 1810 with the read-only memory 1830, the GPU1820, the system memory 1825, and the permanent storage device 1835.

From these various memory units, the processor 1810 retrievesinstructions to execute and data to process in order to execute theprocesses of the invention. Some instructions are passed to and executedby the GPU 1820. The GPU 1820 can offload various computations orcomplement the image processing provided by the processor 1810. Suchfunctionality can be provided using CoreImage's kernel shading language.

The read-only-memory (ROM) 1830 stores static data and instructions thatare needed by the processor 1810 and other modules of the computersystem. The permanent storage device 1835, on the other hand, is aread-and-write memory device. This device is a non-volatile memory unitthat stores instructions and data even when the computer system 1800 isoff. Some embodiments of the invention use a mass-storage device (suchas a magnetic or optical disk and its corresponding disk drive) as thepermanent storage device 1835.

Other embodiments use a removable storage device (such as a floppy diskor ZIP® disk, and its corresponding disk drive) as the permanent storagedevice. Like the permanent storage device 1835, the system memory 1825is a read-and-write memory device. However, unlike storage device 1835,the system memory is a volatile read-and-write memory, such a randomaccess memory. The system memory stores some of the instructions anddata that the processor needs at runtime. In some embodiments, theinvention's processes are stored in the system memory 1825, thepermanent storage device 1835, and/or the read-only memory 1830.Together or separate, the above mentioned memories and storage devicescomprise the computer readable medium of the computer system on whichthe media-editing application is stored and executed from, the objectsused within the media-editing application are stored, and the files fordefining the composition of the objects and behaviors of the objectswithin the 3D space of the media-editing application.

The bus 1805 also connects to the input and output devices 1840 and1845. The input devices enable the user to communicate information andselect commands to the computer system. The input devices 1840 includealphanumeric keyboards and pointing devices. The output devices 1845display images generated by the computer system. For instance, thesedevices display a graphical user interface. The output devices includeprinters and display devices, such as cathode ray tubes (CRT) or liquidcrystal displays (LCD).

Finally, as shown in FIG. 18, bus 1805 also couples computer 1800 to anetwork 1865 through a network adapter (not shown). In this manner, thecomputer can be a part of a network of computers (such as a local areanetwork (“LAN”), a wide area network (“WAN”), or an Intranet, or anetwork of networks, such as the internet. For example, the computer1800 may be coupled to a web server (network 1865) so that a web browserexecuting on the computer 1800 can interact with the web server as auser interacts with a graphical user interface that operates in the webbrowser. Any or all components of computer system 1800 may be used inconjunction with the invention.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. For instance, Apple Mac OS®environment and Apple Motion® tools are used to create some of theseexamples, a person of ordinary skill in the art would realize that theinvention may be practiced in other operating environments such asMicrosoft Windows®, UNIX®, Linux, etc., and other applications such asAutodesk Maya®, and Autodesk 3D Studio Max®, etc. Also, some of theexamples may be executed on a GPU or CPU of a computer system dependingon the computing resources available on the computer system oralternatively on any electronic device that is able to providemedia-editing functionality. Thus, one of ordinary skill in the artwould understand that the invention is not to be limited by theforegoing illustrative details, but rather is to be defined by theappended claims.

We claim:
 1. A non-transitory machine readable medium storing a mediaediting application for editing a plurality of different objects withina three dimensional (3D) space, the application comprising sets ofinstructions for: displaying a first view of the 3D space comprising aset of camera objects and a set of non-camera objects in a first displayarea; detecting a manipulation of an object in the first display area;determining whether the manipulated object is a camera object or anon-camera object; when the manipulated object is a camera object,displaying a second view of the 3D space from a vantage point of themanipulated camera object in a second display area; and when themanipulated object is a non-camera object, displaying a third view ofthe 3D space that includes the manipulated non-camera object in thesecond display area, wherein the third view is preselected from apredetermined set of views based on the manipulation of the object,wherein the second display area appears within the first display areaupon the manipulation, remains visible throughout the duration of themanipulation, and disappears upon completion of the manipulation.
 2. Thenon-transitory machine readable medium of claim 1, wherein the thirdview is further based on the first view.
 3. The non-transitory machinereadable medium of claim 2, wherein the third view is based on a set ofrules that determines the third view by accounting for the first view.4. The non-transitory machine readable medium of claim 1, wherein thepredetermined set of views comprises at least one of an active cameraview, a perspective view, a top view, a side view, and a front view. 5.The non-transitory machine readable medium of claim 1, wherein thesecond display area is adjustable according to a set of parameters, andsaid set of parameters is associated with at least one control to modifya size of the second display area.
 6. The non-transitory machinereadable medium of claim 1, wherein the non-camera object is one of alayer object, a text object, a video object, an image object, a shapeobject, and a paint object.
 7. The non-transitory machine readablemedium of claim 1, wherein the manipulation of the object comprisesmoving the object through the 3D space, wherein the set of instructionsfor displaying the third view comprises a set of instructions forpreselecting a view from the plurality of predetermined views thatdisplays the movement of the object.
 8. The non-transitory machinereadable medium of claim 1, wherein the second and third views of thesecond display area are different from the first view of the firstdisplay area.
 9. The non-transitory machine readable medium of claim 1,wherein the set of instructions for displaying the third view comprisessets of instructions for: preselecting a first predetermined view for afirst manipulation occurring along a first dimension of the 3D space;and preselecting a second predetermined view for a second manipulationoccurring along a second dimension of the 3D space, wherein dimensionsof the 3D space comprise height, width, and depth dimensions.
 10. Thenon-transitory machine readable medium of claim 1, wherein the seconddisplay area dynamically changes from the third view to a fourth viewwhen the manipulation changes from a first manipulation to a secondmanipulation.
 11. A method for editing a plurality of different objectswithin a three dimensional (3D) space, the method comprising: displayinga first view of the 3D space comprising a set of camera objects and aset of non-camera objects in a first display area; detecting amanipulation of an object in the first display area; determining whetherthe manipulated object is a camera object or a non-camera object; whenthe manipulated object is a camera object, displaying a second view ofthe 3D space from a vantage point of the manipulated camera object in asecond display area; and when the manipulated object is a non-cameraobject, displaying a third view of the 3D space that includes themanipulated non-camera object in the second display area, wherein thethird view is preselected from a predetermined set of views based on themanipulation of the object, wherein the second display area appearswithin the first display area upon the manipulation, remains visiblethroughout the duration of the manipulation, and disappears uponcompletion of the manipulation.
 12. The method of claim 11, wherein thethird view is further based on the first view.
 13. The method of claim12, wherein the third view is based on a set of rules that determinesthe third view by accounting for the first view.
 14. The method of claim11, wherein the predetermined set of views comprises at least one of anactive camera view, a perspective view, a top view, a side view, and afront view.
 15. The method of claim 11, wherein the second display areais adjustable according to a set of parameters, and said set ofparameters is associated with at least one control to modify a size ofthe second display area.
 16. The method of claim 11, wherein thenon-camera object is one of a layer object, a text object, a videoobject, an image object, a shape object, and a paint object.
 17. Themethod of claim 11, wherein the manipulation of the object comprisesmoving the object through the 3D space, wherein displaying the thirdview comprises preselecting a view from the plurality of predeterminedviews that displays the movement of the object.
 18. The method of claim11, wherein the second and third views of the second display area aredifferent from the first view of the first display area.
 19. The methodof claim 11, wherein displaying the third view comprises: preselecting afirst predetermined view for a first manipulation occurring along afirst dimension of the 3D space; and preselecting a second predeterminedview for a second manipulation occurring along a second dimension of the3D space, wherein dimensions of the 3D space comprise height, width, anddepth dimensions.
 20. The method of claim 11, wherein the second displayarea dynamically changes from the third view to a fourth view when themanipulation changes from a first manipulation to a second manipulation.21. An apparatus comprising: a set of processing units; and anon-transitory machine readable medium storing a media editingapplication for editing a plurality of different objects within a threedimensional (3D) space, the application comprising sets of instructionsfor: displaying a first view of the 3D space comprising a set of cameraobjects and a set of non-camera objects in a first display area;detecting a manipulation of an object in the first display area;determining whether the manipulated object is a camera object or anon-camera object; when the manipulated object is a camera object,displaying a second view of the 3D space from a vantage point of themanipulated camera object in a second display area; and when themanipulated object is a non-camera object, displaying a third view ofthe 3D space that includes the manipulated non-camera object in thesecond display area, wherein the third view is preselected from apredetermined set of views based on the manipulation of the object,wherein the second display area appears within the first display areaupon the manipulation, remains visible throughout the duration of themanipulation, and disappears upon completion of the manipulation. 22.The apparatus of claim 21, wherein the third view is further based onthe first view.
 23. The apparatus of claim 22, wherein the third view isbased on a set of rules that determines the third view by accounting forthe first view.
 24. The apparatus of claim 21, wherein the predeterminedset of views comprises at least one of an active camera view, aperspective view, a top view, a side view, and a front view.
 25. Theapparatus of claim 21, wherein the second display area is adjustableaccording to a set of parameters, and said set of parameters isassociated with at least one control to modify a size of the seconddisplay area.
 26. The apparatus of claim 21, wherein the non-cameraobject is one of a layer object, a text object, a video object, an imageobject, a shape object, and a paint object.
 27. The apparatus of claim21, wherein the manipulation of the object comprises moving the objectthrough the 3D space, wherein the set of instructions for displaying thethird view comprises a set of instructions for preselecting a view fromthe plurality of predetermined views that displays the movement of theobject.
 28. The apparatus of claim 21, wherein the second and thirdviews of the second display area are different from the first view ofthe first display area.
 29. The apparatus of claim 21, wherein the setof instructions for displaying the third view comprises sets ofinstructions for: preselecting a first predetermined view for a firstmanipulation occurring along a first dimension of the 3D space; andpreselecting a second predetermined view for a second manipulationoccurring along a second dimension of the 3D space, wherein dimensionsof the 3D space comprise height, width, and depth dimensions.
 30. Theapparatus of claim 21, wherein the second display area dynamicallychanges from the third view to a fourth view when the manipulationchanges from a first manipulation to a second manipulation.